A CPU with a hypervisor or a virtual machine monitor (VMM) support is able to execute multiple virtual machines (VMs). Each VM can execute its own application on a dedicated instance of an operating system. Each VM application can be interrupt driven, meaning that hardware resources assigned the VM application (e.g., interfaces, Direct Memory Access (DMA) channels, or other resources) can send interrupts to the application to request for attention/resource allocation. It is also possible that other CPUs can send software SW interrupts to a VM application, which can be a part of a virtualization resource (VR) performing the same function(s) as physical resource or node.
A hypervisor or VMM can be a computer software, firmware or hardware that creates/runs/executes virtual machines. A computer or processing device on which a hypervisor runs one or more virtual machines can be referred to as a host machine, and each VM a guest machine. The hypervisor provides the guest operating systems with a virtual operating platform and manages the execution of the guest operating systems. Multiple instances of a variety of operating systems may share the virtualized hardware resources: for example, Linux, Windows, and macOS instances can all run on a single physical x86 machine. This contrasts with operating-system-level virtualization, where all instances (e.g., containers) share a single kernel, though the guest operating systems can differ in user space, such as different Linux distributions with the same kernel.